/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.client.om.impl;

import java.util.Date;

import fr.generali.accueilclient.client.om.IPieceIdentite;


/**
 * Implémentation de {@link IPieceIdentite}
 * 
 * @author selrhazala
 */
public class PieceIdentite implements IPieceIdentite {
    
    /**
     * numéro d'ordre du site internet
     */
    private String numOrdre;
    
    /**
     * Le numéro de pièce d'identité
     */
    private String numero;
    
    /**
     * Le type de pièce d'identité
     */
    private String type;
    
    /**
     * Le statut de pièce d'identité
     */
    private String statut;
    
    /**
     * La date de délivrance de pièce d'identité
     */
    private Date dateDelivrance;
    
    /**
     * Le lieu de délivrance de pièce d'identité
     */
    private String lieuDelivrance;
    
    /**
     * Le pays de délivrance de pièce d'identité
     */
    private String paysDelivrance;
    
    /**
     * La date de fin de validité de pièce d'identité
     */
    private Date dateFinValidite;
    
    /**
     * La categorie de pièce d'identité
     */
    private String categorie;
    
    /**
     * La date de début de retrait de pièce d'identité
     */
    private Date dateDebutRetrait;

    /**
     * La date de fin de retrait de pièce d'identité
     */
    private Date dateFinRetrait;

    
    /**
     * @return the numOrdre
     */
    public String getNumOrdre() {
        return numOrdre;
    }

    /**
     * @param numOrdre the numOrdre to set
     */
    public void setNumOrdre(String numOrdre) {
        this.numOrdre = numOrdre;
    }

    /**
     * @return the numero
     */
    public String getNumero() {
        return numero;
    }

    /**
     * @param numero the numero to set
     */
    public void setNumero(String numero) {
        this.numero = numero;
    }

    /**
     * @return the type
     */
    public String getType() {
        return type;
    }

    /**
     * @param type the type to set
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * @return the statut
     */
    public String getStatut() {
        return statut;
    }

    /**
     * @param statut the statut to set
     */
    public void setStatut(String statut) {
        this.statut = statut;
    }

    /**
     * @return the dateDelivrance
     */
    public Date getDateDelivrance() {
        return dateDelivrance;
    }

    /**
     * @param dateDelivrance the dateDelivrance to set
     */
    public void setDateDelivrance(Date dateDelivrance) {
        this.dateDelivrance = dateDelivrance;
    }

    /**
     * @return the lieuDelivrance
     */
    public String getLieuDelivrance() {
        return lieuDelivrance;
    }

    /**
     * @param lieuDelivrance the lieuDelivrance to set
     */
    public void setLieuDelivrance(String lieuDelivrance) {
        this.lieuDelivrance = lieuDelivrance;
    }

    /**
     * @return the paysDelivrance
     */
    public String getPaysDelivrance() {
        return paysDelivrance;
    }

    /**
     * @param paysDelivrance the paysDelivrance to set
     */
    public void setPaysDelivrance(String paysDelivrance) {
        this.paysDelivrance = paysDelivrance;
    }

    /**
     * @return the dateFinValidite
     */
    public Date getDateFinValidite() {
        return dateFinValidite;
    }

    /**
     * @param dateFinValidite the dateFinValidite to set
     */
    public void setDateFinValidite(Date dateFinValidite) {
        this.dateFinValidite = dateFinValidite;
    }

    /**
     * @return the categorie
     */
    public String getCategorie() {
        return categorie;
    }

    /**
     * @param categorie the categorie to set
     */
    public void setCategorie(String categorie) {
        this.categorie = categorie;
    }

    /**
     * @return the dateDebutRetrait
     */
    public Date getDateDebutRetrait() {
        return dateDebutRetrait;
    }

    /**
     * @param dateDebutRetrait the dateDebutRetrait to set
     */
    public void setDateDebutRetrait(Date dateDebutRetrait) {
        this.dateDebutRetrait = dateDebutRetrait;
    }

    /**
     * @return the dateFinRetrait
     */
    public Date getDateFinRetrait() {
        return dateFinRetrait;
    }

    /**
     * @param dateFinRetrait the dateFinRetrait to set
     */
    public void setDateFinRetrait(Date dateFinRetrait) {
        this.dateFinRetrait = dateFinRetrait;
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public boolean equals(Object obj) {
        if (obj instanceof PieceIdentite) {
            IPieceIdentite pieceIdentite = (IPieceIdentite ) obj;
            if (this.numOrdre == pieceIdentite.getNumOrdre()
                            || (this.numOrdre != null && this.numOrdre.equals(pieceIdentite.getNumOrdre()))) {
                return true;
            }
        }
        return false;

    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int hashCode() {
        int hash = 7;
        hash = 31 * hash + (null == this.numOrdre ? 0 : this.numOrdre.hashCode());
        return hash;
    }
    
}
